package com.atguigu.a_fileoutputstream;


import java.io.FileOutputStream;
import java.io.IOException;

/*

    1. 如何写字符串 :
            String --> byte[] :
                byte[] getBytes() : 按照平台的默认编码格式把字符串转换成字节数组
                byte[] getBytes(String charsetName) : 按照指定的编码格式把字符串转换成字节数组

       如何写换行符 : "\r\n"
            "\r\n".getBytes()

    2. 如何追加写 : 保留文件内容,继续追加写入
            //追加写开关 : 默认是false,想追加写就主动传入true
            FileOutputStream(String name, boolean append)
            FileOutputStream(File name, boolean append)
 */

public class Demo1 {
    public static void main(String[] args) throws IOException {
        //创建文件字符输出流对象
        FileOutputStream fos = new FileOutputStream("T_Day22\\test\\aaa.txt",true);//目标文件

        //流的操作代码要写在对象创建之后,关流之前
        //一次写一个字节
        fos.write(97);
        fos.write(65);
        fos.write(48);
        fos.write("\r\n".getBytes());

        //一次写一个字节数组
        byte[] bys = {97,98,99,100,101};
        fos.write(bys);
        fos.write("\r\n".getBytes());

        //一次写一个字节数组的一部分
        fos.write(bys,1,3);
        fos.write("\r\n".getBytes());

        //写字符串
        String line = "今天天气真晴朗 !";
        fos.write(line.getBytes());
        fos.write("\r\n".getBytes());

        //写字符串的一部分 [不同编码下 汉字占用的字节数量不一致 UTF-8 一个汉字占用3个字节]
        fos.write(line.getBytes(),12,11);
        fos.write("\r\n".getBytes());



        //当流对象使用完毕 一定要关流
        fos.close();//在这里抛出异常
    }
}
